import router from '~/router'
import { GetTokenLocalStorage } from '~/composables/auth'
import { toast } from '~/composables/util'
import store from '~/store'

//全局前置守卫
router.beforeEach(async(to, from, next) => {
    const token = GetTokenLocalStorage()
    //没有登录的话，强制跳转回登录页面
    if (!token.value && to.path != '/login') {
        toast('请先登录', 'error')
        return next({ path: '/login' })
    }
    //防止重复登录
    if (token.value && to.path == '/login') {
        toast('请勿重复登录', 'error')
        return next({ path: from.path ? from.path : '/' })
    }
    //若用户登录，自动获取用户信息，并存储在vuex中
    if (token.value) {
        //异步操作，需要使用await
        await store.dispatch('getinfo')
    }
    next()
})